package cqrtplm.service;

import com.hustcad.plm.pdm.partbom.vo.PdmPartInfoVO;
import com.ty.basic.entity.IdentifierEntity;
import cqrtplm.dto.AttributeCardDTO;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface HistoryDataImportService {

    /**
     * 导入图样代号
     * @param file
     */
    void importPatternCode(MultipartFile file);

    /**
     * 导入文档
     * @param fileList
     */
    void importDoc(MultipartFile fileList);

    /**
     * 导入标准件
     * @param file
     *
     */
    List<PdmPartInfoVO> importStandardPart(MultipartFile file);

    /**
     * 导入3D数模图纸
     * @param file
     */
    List<PdmPartInfoVO> import3DDigitalModel(MultipartFile file);

    /**
     * 导入表现
     * @param file
     */
    void importPartPresentation(MultipartFile file, int sheetIndex);

    /**
     * 导入专用件
     * @param file
     */
    List<PdmPartInfoVO> importSpecialPart(MultipartFile file);

    /**
     * 导入EBOM号历史数据
     */
    void importEbomHistoryData(MultipartFile file);

    /**
     * 下载文件
     * @param filePath
     * @param ip
     * @param port
     * @return
     */
    Map<String,MultipartFile> getFileFromFtp(List<String> filePath, String ip, int port);

    /**
     * 批量导入BOM
     * @param file
     * @param response
     */
    void batchImportBom(MultipartFile file, HttpServletResponse response);

    /**
     * 导入工艺文档
     * @param file
     */
    void importProcessDoc(MultipartFile file) throws Exception;

    /**
     * 下载模板
     * @param response
     * @param fileName
     */
    void downloadTemplate(HttpServletResponse response, String fileName);

    /**
     * 导入分类
     * @param file
     */
    void importClassification(MultipartFile file);


    /**
     * 更新描述规则
     */
    void updateDescribeRule(List<AttributeCardDTO> attributeList, IdentifierEntity entity , String isHiddenModelNumber);

    /**
     * 批量更新描述规则
     * @param file
     */
    void batchUpdateDescribeRule(MultipartFile file);

    /**
     * 批量创建属性
     */
    void batchCreateAttribute(MultipartFile file);

    void updateEnum(MultipartFile file);

    void updateSpecialPartEnum(MultipartFile file);

    void updateStandPartEnum(MultipartFile file);
}
